home *** CD-ROM | disk | FTP | other *** search
- % This is DXPUNCT.MF in text format, as of March 24, 1992
- %
- % DC fonts Version 1.1 (prerelease of EC fonts)
- %
- % [ heavily borrowed from the Computer Modern Roman family of
- % fonts by D. E. Knuth ]
- %
- % Content:
- %
- % punctuation
- %
-
-
- dcchar "guillemets (right)";
- beginchar(oct"017",8u#,asc_height#,0);
- italcorr h#*slant-u#;
- adjust_fit(0,0);
- pickup tiny.nib;
- numeric distance,thickness;
- thickness=hround(.5[cap_curve,hair]);
- distance=hround(max(4u,thickness+1.5u));
- pos1(hair,180);
- pos2(thickness,180);
- pos3(hair,180);
- lft x1r=lft x3r=hround(1.7u+eps);
- x2l=hround(w-1.7u-eps); %
- bot y1=vair;
- % y1-y2=y3-y1; % y1-y3=spread;
- y2=.5[y1,y3]=bar_height; % math_axis;
- filldraw stroke z1e--z2e--z3e;
- %filldraw stroke (z1e--z2e--z3e) shifted (-distance,0); % diagonals
- labels(1,2,3); endchar;
-
-
- dcchar "guillemet left";
- compute_spread(5/4x_height#,3/2x_height#);
- beginchar(oct"016",8u#,v_center(spread#+rule_thickness#));
- italcorr h#*slant-u#;
- adjust_fit(0,0);
- pickup tiny.nib;
- numeric distance,thickness;
- thickness=hround(.5[cap_curve,hair]);
- distance=hround(max(4u,thickness+1.5u));
- pos1(hair,0);
- pos2(thickness,0);
- pos3(hair,0);
- lft x2l=hround 1.7u-eps; x1=x3=w-x2;
- bot y1=vair;
- % y1-y2=y3-y1; % y1-y3=spread;
- y2=.5[y1,y3]=bar_height; % math_axis;
- filldraw stroke z1e--z2e--z3e;
- labels(1,2,3); endchar;
-
- dcchar "guillemets left";
- compute_spread(5/4x_height#,3/2x_height#);
- beginchar(oct"023",12u#,v_center(spread#+rule_thickness#));
- italcorr h#*slant-u#;
- adjust_fit(0,0);
- pickup tiny.nib;
- numeric distance,thickness;
- thickness=hround(.5[cap_curve,hair]);
- distance=hround(max(4u,thickness+1.5u));
- pos1(hair,0);
- pos2(thickness,0);
- pos3(hair,0);
- lft x2l=hround 1.7u-eps; x1=x3=w-x2-distance;
- bot y1=vair;
- % y1-y2=y3-y1; % y1-y3=spread;
- y2=.5[y1,y3]=bar_height; % math_axis;
- filldraw stroke z1e--z2e--z3e;
- filldraw stroke (z1e--z2e--z3e) shifted (distance,0); % diagonals
- labels(1,2,3); endchar;
-
-
- dcchar "guillemets (right)";
- beginchar(oct"024",12u#,asc_height#,0);
- italcorr h#*slant-u#;
- adjust_fit(0,0);
- pickup tiny.nib;
- numeric distance,thickness;
- thickness=hround(.5[cap_curve,hair]);
- distance=hround(max(4u,thickness+1.5u));
- pos1(hair,180);
- pos2(thickness,180);
- pos3(hair,180);
- lft x1r=lft x3r=hround(distance+1.7u+eps);
- x2l=hround(w-1.7u-eps); % x1=x3=x2-distance;
- bot y1=vair;
- % y1-y2=y3-y1; % y1-y3=spread;
- y2=.5[y1,y3]=bar_height; % math_axis;
- filldraw stroke z1e--z2e--z3e;
- filldraw stroke (z1e--z2e--z3e) shifted (-distance,0); % diagonals
- labels(1,2,3); endchar;
-
-
-
- dcchar "German opening comma";
- numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
- define_whole_blacker_pixels(dot_diam);
- beginchar(oct"015",5u#,dot_diam#,comma_depth#);
- adjust_fit(0,0);
- x1+.5dot_diam=hround(w-.5dot_diam); y1-.5dot_diam=0;
- comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
- penlabels(1); endchar;
-
- dcchar "German Opening quotes";
- beginchar(oct"022",7u#+max(2u#,dot_size#),asc_height#,0);
- italcorr asc_height#*slant+dot_size#-4.1u#;
- adjust_fit(0,0);
- x2-.5dot_size=w-hround 3u; y2-.5dot_size=0;
- x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
- comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
- comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
- penlabels(1,2); endchar;
-
- dcchar "Exclamation point";
- beginchar("!",5u#+width_adj#,asc_height#,0);
- italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
- adjust_fit(0,0);
- pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
- lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
- numeric bot_width;
- bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
- pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
- x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
- if square_dots: top y1=h;
- filldraw stroke z1e--z2e; % stem
- else: top z0=(x1,h+o); y1+.5dot_size=h+o;
- filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
- penlabels(0,1,2,3,4); endchar;
-
-
-
- dcchar "Apostrophe";
- beginchar("'",5u#,asc_height#,0);
- italcorr asc_height#*slant+.5dot_size#-2u#;
- adjust_fit(0,0);
- x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
- if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
- else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
- penlabels(1); endchar;
-
-
- dcchar "Asterisk";
- beginchar("*",9u#,
- if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
- italcorr h#*slant-.75u#;
- adjust_fit(0,0);
- numeric ast_flare; ast_flare=hround .7[thin_join,stem];
- x0=.5w; y0=h-.5x_height;
- for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
- numeric theta; theta=angle(z[d]-z0);
- fill z0+.5(0,-thin_join)rotated theta
- ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
- ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
- ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
- labels(0,[-150],[-90],[-30],30,90,150); endchar;
-
- dcchar "Plus sign";
- beginarithchar("+"); pickup extra_rule.nib;
- x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
- lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
- draw z1--z2; % stem
- draw z3--z4; % crossbar
- labels(1,2,3,4); endchar;
-
- dcchar "Comma";
- numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
- define_whole_blacker_pixels(dot_diam);
- beginchar(",",5u#,dot_diam#,comma_depth#);
- adjust_fit(0,0);
- x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
- comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
- penlabels(1); endchar;
-
- dcchar "Period";
- numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
- define_whole_blacker_pixels(dot_diam);
- beginchar(".",5u#,dot_diam#,0);
- adjust_fit(0,0); pickup fine.nib;
- pos1(dot_diam,0); pos2(dot_diam,90);
- lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
- penlabels(1,2); endchar;
-
- dcchar "Virgule (slash)";
- beginchar("/",9u#,body_height#,paren_depth#);
- italcorr body_height#*slant-.5u#;
- adjust_fit(0,0); pickup extra_rule.nib;
- rt x1=hround(w-u)+eps; top y1=h+eps;
- lft x2=hround u-eps; bot y2=-d-eps;
- draw z1--z2; % diagonal
- penlabels(1,2); endchar;
-
- dcchar "Colon";
- numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
- define_whole_blacker_pixels(dot_diam);
- beginchar(":",5u#,x_height#,0);
- italcorr x_height#*slant+.5dot_diam#-2u#;
- adjust_fit(0,0); pickup fine.nib;
- pos1(dot_diam,0); pos2(dot_diam,90);
- lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
- pos3(dot_diam,0); pos4(dot_diam,90);
- x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
- penlabels(1,2,3,4); endchar;
-
- dcchar "Semicolon";
- numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
- define_whole_blacker_pixels(dot_diam);
- beginchar(";",5u#,x_height#,comma_depth#);
- italcorr x_height#*slant+.5dot_diam#-2u#;
- adjust_fit(0,0); pickup fine.nib;
- pos1(dot_diam,0); pos2(dot_diam,90);
- lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
- x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
- comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
- penlabels(1,2,3); endchar;
-
- dcchar "Equals sign";
- compute_spread(.45x_height#,.55x_height#);
- beginchar("=",14u#,v_center(spread#+rule_thickness#));
- italcorr h#*slant-.5u#;
- adjust_fit(0,0); pickup extra_rule.nib;
- lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
- y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
- draw z1--z2; % upper bar
- draw z3--z4; % lower bar
- labels(1,2,3,4); endchar;
-
-
-
- dcchar "Reverse apostrophe";
- beginchar("`",5u#,asc_height#,0);
- italcorr asc_height#*slant+.5dot_size#-2u#;
- adjust_fit(0,0);
- x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
- if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
- else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
- penlabels(1); endchar;
-
-
- dcchar "Spanish open exclamation point";
- beginchar(oct"275",5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
- italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
- adjust_fit(0,0);
- pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
- lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
- numeric top_width;
- top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
- pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
- x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
- if square_dots: bot y1=-d;
- filldraw stroke z1e--z2e; % stem
- else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
- filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
- penlabels(0,1,2,3,4); endchar;
-
-
- dcchar "Closing quotes";
- beginchar(oct"021",7u#+max(2u#,dot_size#),asc_height#,0);
- italcorr asc_height#*slant+dot_size#-4.1u#;
- adjust_fit(0,0);
- x1-.5dot_size=hround .6u; y2+.5dot_size=h;
- x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
- comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
- comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
- penlabels(1,2); endchar;
-
- dcchar "Hyphen";
- beginchar("-",6u#,x_height#,0);
- italcorr .5x_height#*slant-.5u#;
- adjust_fit(0,0);
- numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
- pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
- top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
- if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
- filldraw stroke z1e--z2e; % bar
- penlabels(1,2); endchar;
-
- dcchar "Opening quotes";
- beginchar(oct"20",7u#+max(2u#,dot_size#),asc_height#,0);
- italcorr asc_height#*slant-.1u#;
- adjust_fit(0,0);
- x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
- x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
- ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
- ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
- penlabels(1,2); endchar;
-
- dcchar "En dash";
- beginchar(oct"025",9u#,x_height#,0);
- italcorr .61803x_height#*slant+.5u#;
- adjust_fit(0,0);
- pickup crisp.nib; pos1(vair,90); pos2(vair,90);
- top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
- filldraw stroke z1e--z2e; % bar
- penlabels(1,2); endchar;
-
- dcchar "Em dash";
- beginchar(oct"026",18u#,x_height#,0);
- italcorr .61803x_height#*slant+.5u#;
- adjust_fit(letter_fit#,letter_fit#);
- pickup crisp.nib; pos1(vair,90); pos2(vair,90);
- top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
- filldraw stroke z1e--z2e; % bar
- penlabels(1,2); endchar;
-
- endinput;